﻿using System;
using System.Collections.ObjectModel;

namespace LayeredArchitectureSample.DomainModel
{
    public interface ITrip
    {
        ReadOnlyCollection<WareUnitsCounted> Wares { get; }
        long Id { get; }
        Route Route { get; }

        /// <exception cref="InvalidOperationException"></exception>
        void MarkAsArrivedToFinalDestination();

        string Status { get; }

        TripState State { get; }
    }
}